Machine Learning Approaches for Job Failure Prediction in HTC Systems

Alessio Arcara

CNAF

Grande centro di calcolo:

  • Circa 59k core distribuiti su O(\(10^3\)) host fisici
  • O(50) gruppi di utenti
  • Jobs provenienti da vari esperimenti scientifici

I sistemi HTC, come questo, seguono un paradigma di calcolo batch:

  • Gli utenti inviano i loro jobs che vengono inseriti in una coda
  • HTCondor seleziona i jobs dalla coda per assegnarli ai nodi di calcolo per l’esecuzione

High-Throughput Computing

I sistemi HTC sono progettati per gestire un grande numero di job, massimizzando l’utilizzo delle risorse disponibili

prevedere un job che fallisce → consente di ridurre lo spreco di risorse

idea: predire il fallimento di un job di lunga durata è sicuramente più importante rispetto a predire il fallimento di un job di breve durata

Job ‘zombie’ detection

Solo a Marzo 2023: 1194 giorni di calcolo persi.

  • Jobs che terminano senza rilasciare l’host fisico, causando leakage delle risorse fino al timeout.
    • Timeout grid: 3 giorni
    • Timeout local: 7 giorni
  • L’addestramento di modelli di ML per tali job è complicato → sono rari!

Uno sguardo al Dataset

  • Stato (RAM, DISK, SWAP) dei jobs campionati ogni 3 minuti
  • Ma il batch system aggiorna lo stato ogni 15 minuti!
  • Grandezze monotone non decrescenti

Uno sguardo al Dataset

Possiamo utilizzare una heatmap per visualizzare i jobs zombie in relazione a DISK, SWAP e RAM

  • Risorse: Bianco = media, rosso = sotto la media, blu = sopra la media
  • Jobs zombie in alto: arancione

Spazio latente di un autoencoder

Addestramento supervisionato modelli (un’ora)

  • Prima ora di vita di un job su logs fine 2021

  • Input: i valori di utilizzo di DISK, SWAP e RAM nella prima ora delle serie storiche sono state trasformati in features (ad esempio: DISK_0, DISK_1, DISK_2, DISK_3)

  • Sulla prima metà di settembre 2021, sono stati addestrati diversi modelli di ML e, tra essi, il modello risultato vincente è stato XGBoost

Addestramento supervisionato modelli (un’ora)

Addestramento supervisionato modelli (un giorno)

  • Prime 24 ore di vita di un job su logs inizio 2023padding e truncate

  • Input: tensore 3D (batch_size, time_steps, features)

  • Architetture di reti neurali utilizzate:

    • CNN → feature extraction
    • ResNet-like (3 Residual Blocks)
    • LSTM → long term dependence
    • CNN + LSTM
    • Transformer (Encoder)
  • le reti neurali hanno mostrato performance inferiori alle aspettative

  • il precedente modello XGBoost, addestrato solo sulla prima ora, è statisticamente migliore

Addestramento non supervisionato

Tecniche per trattamento sbilanciamento dei dati

  • sottocampionamento dei jobs normali → scelti casualmente
  • sovracampionamento dei jobs zombie → generati da variational autoencoder
  • cost sensitive learning → via class_weight
  • metriche → F0.5 score

Conclusioni

Problemi:

  • Data drift: i dati cambiano nel tempo e il modello perde accuratezza

  • Data quality: valori monotoni non decrescenti e poche istanze relative alla classe meno rappresentata

Possibili sviluppi:

  • arricchire features incrociando lo stato dei jobs con lo stato dei nodi di calcolo

Grazie per l’attenzione!